Improved decimal adder for directly implementing bcd addition utilizing logic circuitry

ABSTRACT

An improved method and logic system for adding two decimal numbers which are coded in a four-bit binary form. The method includes generating a propagate carry signal Pi for each of the four bits which is the OR function of the bit inputs, generating a generate carry signal Gi for each of the four bits which is the AND function of the bit inputs, and generating a binary carry C1 for the first bit. The decimal carry for the addition is then generated by a novel carry look-ahead technique by employing these signals: Pi, Gi, and the binary carry C1. The binary coded decimal bit signals representative of the decimal sum are also generated directly from these signals and, hence, the adder differs from prior art decimal adders which first performed binary addition in each bit and then added 6 to these binary sums whenever a decimal carry occurred so as to produce corrected binary signals representative of the coded decimal number. Several systems are disclosed employing this method and include a four-logic level, two-digit decimal adder, a three-logic level, two-digit decimal adder; and a six-logic level, eight-digit decimal adder. The six-logic level, eight-digit decimal adder combines concepts of the disclosed novel method for implementing decimal carries, as well as conventional group carry techniques used in parallel binary adders.

United States Patent OTHER REFERENCES Schmookler & Weinberger Decimal Adder IBM Technical Disclosure Bulletin" Vol, 12 No. 3 Aug. 1969 pp. 380- 381.

Schmookler & Weinberger Decimal Adder Carry Circuits IBM Technical Disclosure Bulletin" Vol. 12 No. 3 Aug. 1969 pp. 382- 383. V

ASL BBL W. S. Ang Parallel BCD Adder IBM Technical Disclosure Bulletin" Vol. 4 No. 2 July i961 pp. 41.

Kahn & Melan Magnetic Arithmetic Matrix Giving Simultaneous Results IBM Technical Disclosure Bulletin Vol. 4 No. I June 61 pp. 46-47 Primary ExaminerMalcolm A. Morrison Assistant Examiner-David H. Malzahn Attorney-Sughrue, Rothwell, Mion, Zinn & Macpeak ABSTRACT: An improved method and logic system for adding two decimal numbers which are coded in a four-bit binary form. The method includes generating a propagate carry signal P, for each of the four bits which is the OR function of the bit inputs, generating a generate carry signal G,- for each of the four bits which is the AND function of the bit inputs, and generating a binary carry C for the first bit. The decimal carry for the addition is then generated by a novel carry look-ahead technique by employing these signals: P 6,, and the binary carry C,. The binary coded decimal bit signals representative of the decimal sum are also generated directly from these signals and, hence, the adder differs from prior art decimal adders which first performed binary addition in each bit and then added 6 to these binary sums whenever a decimal carry occurred so as to produce corrected binary signals representative of the coded decimal number. Several systems are disclosed employing this method and include a four-logic level, two-digit decimal adder, a three-logic level, two-digit decimal adder; and a six-logic level, eight-digit decimal adder. The sixlogic level, eight-digit decimal adder combines concepts of the disclosed novel method for implementing decimal carries, as well as conventional group carry techniques used in parallel binary adders.

PATENTED m2] I971 SHEET DEOF 12 PATENTED DECZI I97! 3.629.565

SHEET 05 0F 12 Em L 51L PATENIEU [1:221 nan SHEET [170F 12 PATENTED EH32! E71 SHEET C8UF 12 FIG. 8

PATENIED EH22] ran 3,629,5 5

sum 10 0F 12 FIG. 10

AIL

PATENTED uEc21 I971 SHEET PATENTEU UEIIZI em SHEET lEUF 12 DECIMAL ADIEB FOR DIRECTLY IMPLEMENTING BCD ADDITION UTILIZING LOGIC CIRCUITRY BACKGROUND OF THE INVENTION 1. Field of the Invention This invention relates to decimal adders and more particularly to decimal adders wherein the augend and addend are coded in a four-bit binary code commonly called BCD or the 842 l-weighted code.

2. Description of the Prior Art Decimal adders are well known in the prior art wherein the decimal numbers employed are represented in binary codes. Most decimal adders employ the 842l-weighted code because, with this code, simple binary addition techniques may be generally employed. This code allows a decimal number to be represented by binary signals; four bits are required to achieve full decimal representation from -9. Therefore, the decimal number 9 is represented by a l in the eight-order bit, and a l in the one-order bit, that is, lO0l. A decimal adder employing such a code is disclosed in R. K. Richards, Arithmetic Operations and Digital Computers" at page 210. As discussed therein, there are two inherent problems with this type of decimal adder which are not apparent in a pure binary system. The first problem is that a decimal carry signal should be sent from a first digit to the next higher order digit when the sum of the first digit is equal to or greater than 10, but such an indication cannot be obtained solely by a binary carry from the eight-order bit since a sum value of or greater may also be indicated by various combinations of ones in the eight-, four-, two-, and one-order bits of the augend and addend. Another problem is that a binary carry from the eight-order bit has the effect of carrying l6 rather than the desired value of 10. As disclosed therein, a decimal adder normally includes the binary addition of each bit, the generation of a decimal carry, if any, from the binary sums so produced, and finally a correction to the binary sums so generated to produce corrected binary sums whenever a decimal carry has been produced. Basically, all decimal adders have followed this traditional design.

It is also known in the prior art of binary adders that a technique referred to as carry look-ahead is useful in reducing the number of logic levels necessary to effect the binary additions. Such a method is described in an article authored by A. Weinberger and J. L. Smith and entitled A Microsecond Adder Using One Megacycle Circuitry 1956, [RE Transactions On Electronic Computers, at page 65. This technique of carry look-ahead essentially allows the formation of a binary carry in a bit without the necessity of first forming the binary carry from the preceding bit. This allows a binary sum to be produced in a much faster fashion since the binary carries need not ripple through each binary bit of the binary adder.

SUMMARY OF THE INVENTION Accordingly, it is an object of this invention to refine the techniques of binary carry look-ahead so that they may be employed in decimal adders.

Another object of the invention is to employ a novel carry look-ahead technique to produce a decimal carry without first producing the binary sums of each bit.

An additional object of the invention is to provide a decimal adder which obviates the necessity for producing the binary sums of each input bit.

A further object of this invention is to provide a method for generating the decimal carry in a decimal adder employing decimal numbers coded in a four-bit binary code wherein the decimal carry is generated from logic functions independently produced from the first bit inputs and from the remaining bit inputs.

The invention may thus be summarized as an improved method and logic system for performing decimal addition wherein the digits of the augend and the addend are each represented in an 8, 4, 2, l, four-bit binary code. The system accepts as inputs the binary coded augend, addend, and a loworder input carry C,,,. It basically generates a propagate carry signal P, for each bit, a generate carry signal G, for each bit and a binary carry C, from the first bit of the binary coded inputs, from which a decimal carry signal and the four-bit binary signals are generated at its output, thereby representing the decimal sum of the addition. The propagate signal P, for any bit i is equal to A, +B, where A, and B, are the binary coded inputs of the augend and addend respectively. The generate signal G, for any bit 1' is equal to A,B,. The binary carry C, is conventionally generated and equals G, +P,C,,,. The decimal carry is generated from logic functions produced from the propagate and generate signals from the eight-, four-, and twoorder bits, and from the binary carry from the first bit. Thus, the decimal carry is generated by grouping the 8, 4, 2, I group into two groups, that is, a first group comprising the eight-, four-, two-order bits and a second group comprising the oneorder bit. The binary signals representing the sum of the decimal addition in a four-bit form are formed directly from the propagate and generate signals of each bit rather than performing binary addition and then adding six to correct these binary sum signals whenever a decimal carry has been made.

BRIEF DESCRIPTION OF THE DRAWINGS FIG. I illustrates an implementation of the decimal carries in a four-logic level, two-digit decimal adder;

FIG. 2 illustrates an implementation of the binary coded signals representing the decimal sum of the lower digit in a four-logic level, two-digit decimal adder;

FIG. 3 illustrates a logic implementation of the binary signals representing the decimal sum of the high-order digit in a four-logic level, two-digit decimal adder;

FIG. 4 illustrates a logic implementation of the decimal carries in a three-logic level, two-digit decimal adder;

FIG. 5 illustrates an implementation of the binary signals representing the decimal sum of the lower order digits in a three-logic level, two-digit decimal adder;

FIG. 6 illustrates a logic implementation of the binary signals representing the decimal sum of the high-order digits in a three-logic level, two-digit decimal adder;

FIGS. 7 through 10 illustrate an implementation of the byte generate and propagate carry signals in a six-logic level, eightdigit decimal adder;

FIG. 11 illustrates a logic implementation of the binary signals representing the decimal sum of the lower order digits in any byte of a six-logic level, eight-digit decimal adder;

FIG. 12 illustrates a logic implementation of the binary signals representing the decimal sum of the high-order digits in any byte of a six-level, eight-digit decimal adder.

DESCRIPTION OF THE PREFERRED EMBODIMENT FIGS. 1, 2 and 3 illustrate a four-logic level, two-digit decimal adder which implements the techniques of the present invention. Since it is a two-digit adder, it may employ any twodigit decimal numbers as inputs, for example 31 and 65. Hereinafter, the two digits will be referred to as a high-order and a low-order l. The low-order digit is the decimal oneorder digit and the high-order digit is the decimal lO-order digit. Both the lowand high-order digits are coded in a fourbit binary code comprising an eight-,four-,twoand a oneorder bit. Therefore, the decimal numbers 4 and 7 are represented in a binary code as 0100, and 01 l 1, respectively. Hereinafter, the loworder augend bits will be represented byA, terms, the low-order addend bits by 8,, terms, the highorder augend bits by A, terms, and the high-order addend by B, terms.

FIG. 1 illustrated the circuitry for generating the decimal carries of both the highand low-order decimal digits. FIG. 2 illustrates the logic circuitry for developing the sum of the low-order digits of the augend and addend. FIG. 3 illustrates the logic circuitry for generating the sum of the high-order digits of the augend and addend. The logic circuits employed are conventional; they have emitter follower outputs and the top output generates the NOR function of the inputs and the bottom output produces the OR function of the inputs. In addition, the NOR output functions may be externally wired together at their outputs to produce the OR function. This is commonly referred to as wire-OR-ing or emitter dotting, since the emitters of the logic output transistors are connected together. In referring to an adder comprising a number of logic levels, emitter dotting is not considered a logic level. Therefore, the four-bit binary coded decimal numbers A B A are inputs at the first level and the generated sum is produced at the outputs of the fourth level.

FIG. 1 illustrates an implementation of the highand loworder decimal carries generated in accordance with the present invention. As stated above, it is an object of this inven tion to produce the decimal carries for each digit without the necessity for generating the binary carries of each bit. More particularly, the decimal carry is to be generated from the generate carry signals, the propagate carry signals, and the binary carry signal from the first bit of the digit, where a propagate carry signal P, represents the propagate signal for any bit 1' and equals A,+B,, and G, represents any bit-generate carry signal and equals A,-B,-. Thus, it can be seen tat G, will be positive only when A, and B, are positive, that is, whenever a binary carry is generated in bit i. The propagate carry signals, P,, will be positive whenever either A, or B, is positive, that is, when either-A,- or B, are ones. This is called a propagate signal since each bit having a positive propagate signal will transmit, or propagate, an input carry from a lower bit to the next higher bit. As can be seen from FIGS. 2, and 3, the propagate and generate signals are generated at the first level of the logic circuitry from the four-bit binary coded inputs, A A A A,,, being the augend digit, B B B,,, B being the addend of the lower-order decimal digit and A,,,, A A A being the augend of the higher order decimal digit nd 3, B B B being the addend of the higher order decimal digit. The binary carry of the first bit, C,, is also produced at the first level as shown in FIG. 2. It is logically determined from the equation C,=G,+P,C,,, where is the low-order input carry from a previous addition.

The operation of FIG. 1 can best be understood by a mathematical analysis of the generaton of a decimal carry. A decimal carry, C should be produced whenever the four-bit binary code equals or more or whenever the four-bit binary code equals 9 and there is a decimal carry from the next lower order digit. This truism is represented by the following equation:

C, [.4,.,B,,+A,B,,+A,,B +B,,A ,+B,,A +A,,A,B,+B,,A,B,+A B,A

+A B,B +A,B,A,B,+A,,A B- ,A,B,+B A B A,B,]+[A,,A, +A B+B A ,+B,,B,+A ,B,A ,+A,B,B+A A B A 1+A4A2B2B i' i 2 2 1' 4 2 2 r] rl-l I The first term in this equation represents all those combinations of input bit values which would yield a binary coded decimal number of 10 or greater and the second term in the equation represents those combinations which would yield the sum of 9 in combination with a decimal carry C,, from the next lowest order digit. This equation can be solved and grouped as follows:

c,,= G,,+P,,P,+P,,P,+P,G,+G,P,+G,G,+P,G,G, P,,P,+c

4 l J 2 l] ll'-I GE+PHP4+PSP2+G4PZI+IP8+G4+P4G2] I l l tll] By substituting variables, this equation can be expressed as:

C,,=K+LC,+( K+L)(K+C,)=L(K+C,) where C, is the binary carry from the first bit and equals G,+P,C,, K=G +P P ,+P,,P +G ,P,, and L=P,,+G +P,G The solution to this equation can be easily confirmed since it is easily seen that K will be positive only when the decimal sum of the eight-, four-, and two-order bits is 10 or greater, and Lwill be positive only when the decimal sum of the eight-, four-, and two-order bits is 8 or greater, and C, means there has been a binary carry from the first bit, that is, the value of 2 is added to the value of L to yield a sum 10 or greater. Therefore. to implement the solution in this equation, the

four-bit binary code 8, 4, 2 and 1 can be grouped in two groups consisting of the eight-, four-, two-order bits and the one-order bit, since K and L are dependent solely upon the generate and propagate signals from the eight-, four-, and two-order bits and C, is dependent only upon the inputs to the one-order bit.

Referring now more specifically to H6. 1, it can be seen how this equation has been implemented. The propagate and generate signals for each bit of each digit are generated as illustrated in the first level in FIGS. 2 and 3 and will be more fully explained later. Starting with the upper portion of the FIG. which represents the generation of the lower order decimal carry C,,, it can be seen that the logic gate 10 generates the function P,,- +P by ORing its inputs A B A B The function G is generated by ORing the OR- ing of gates I2 and 14 by emitter dotting. Similarly, the function P G is generated by ORing the outputs of gates I6 and 18. The gates 20 and 22 and the emitter dot 23 generate the function K C,, and the ate 24 generates the function I These functions are inputs to the gate 2 which generates the low-order decimal carry C according to the equation G =I +E C Here it should be noted that the low-decimal carry C, has been generated from the logic function K, and L derived from the propagate and generate signals of the eight, four-, and two-order bits and from the binary carry C, from the one-order bit. Thus, there has been a grouping of the eight-, four-, two-order, one-order bits into two groups, one comprising the eight-, four-, and two-order bits, and the second comprising the one-order bit.

The high-order decimal carry C is similarly generated. The gates 28, 30 and 32 generate the function G i which is used in gate 34 to generate the binary carry of the first bit of the higher order digit C,,,. The gates 36, 38, 40, 42 generate, respectively, the functions P G P P P,,,,P and G ,,P The gates 44 and 46 then generate the K and L functions. The gate 48 NOR's the I and C functions to generate the L C, function and the gate 50 is similarly used to generate the K function. These outputs are then ORed by the emitter dot S1 to generate the high-order decimal carry rlli- Now turning to the development of the bit sum signals for each digit as illustrated in FIGS. 2 and 3, a few definitions are in order before discussing the de elopmgntgf the equations. The half-sum signal of biti is l-l,=A,-B,+A,-B,=G,-P,=

lffsifii is the uncorrected binary sum of a bit i; and S,- is the corrected sum signal of bit 1' and is necessary since the binary sum signals must be corrected whenever a decimal carry is made. In prior art decimal adders, this correction was normally made by adding 6. The corrected sum signal of the first bit, S, equals the binary sum ofthe first bit, S,,,, since a decimal carry will not affect this bit. Using the half-sum signal of the first bit, this sum signal may be gen erated by emp l9yin g the equation:

l 1 ln+ l in H l in in l 1- The two order bit corrected sum signal, 8,, should be I when ever the decimal sum is 2, 3, 6, 7,12, l3, l6, and 17. This can be represented in equatior i form as:

Z 2h dQESZb IIL which then in turn equals S =H C,C,, +H C,C -l-H C,C,, +H C,C,,, The four-order bit corrected sum signal, 8,, should be one when the binary value of A,,, B A,, B A B C, totals 4, 5, 6, 7, l4, l5, 16 or 17. This can be represented in equation form as;

where (1., refers to the decimal carry from the same decimal digit.

Referring now to FIG. 2, it can be seen how these equations are implemented in generating the sum of the low-r der digits. The gates 52, 54, 56, 58 generate tl' functions P H G and C from the inputs A B,, I B and C,,,. The gates 60 and 62 then employ these functions as inputs to generate the first bit sum signal, S as an output. The gate 64 develops the function C from the inputs H C and G,, The gates 66, 68, 70, 72, 74, 76, generate the propagate and generate carry signals for the second, third and fourth bit. In the second level, the gates 78, 80 and 82 generate the half-sum signal for these bits and the gate 84 generates the function H H In the third level of logic, the gates 86 and 88 generate the functions H, H +G,,, and

Ti frfi The binary coded signals representing the decimal sum are generated in the fourth level by the logic gates 90 from these functions produced in the first, second and third levels and the functionsI and C which are generated by the decimal carry circuitry as illustrated in FIG. 1 and explained above.

FIG. 3 illustrates the generation of the binary coded bit signals representing the sum of the high-order decimal digits. The equations employed are substantially the same as those used in the generation of the bit sum signals for the lower order decimal digits. The first level logic gates 92 generate the propagate and generate signals from the four-bit binary coded inputs. In the second level, the gates 94 generate the half-sum signals for each bit and the gate 96 generates the function High Order Low Order m m m IL n 32 0 I I 0 0 I 0 95 m m m BIII ur. 41. 21. BIL

I27 1 0 0 l 0 l 0 I S4" :11 SLL H l 0 0 I 0 0 l I l The digital value of 32 is represented in four-bit binary form by placing the value of 3 in the higher order digit and a value of 2 in the lower order digit. Thus, A and A and A are ones and the remaining A,- values are zero. In a similar fashion the digital value 95 is represented by the B,- values. These fourbit binary coded decimal numbers are inputs to the decimal carry circuit, the low-order decimal digit circuit, and the highorder decimal digit circuit as shown in FIGS. 1, 2 and 3. These values are then processed as described above in each level of each circuit to yield a one value in the higher order decimal carry C in the two-order bit S of the high-order digit circuit, and in the four-, two and one-order bits S,,, S and S of the low-order decimal digit circuit. The remaining outputs are zeros. Thus, in four-bit binary coded form this represents the decimal value of 127, the sum of 32 and 95 as desired.

FIGS. 4, 5 and 6 illustrate a three logic level, two-digit decimal adder. It is similar to the above described four-logic level, two-digit decimal adder, differing essentially in that the binary coded bit signals and the decimal carries are generated after three levels of logic rather than four. The overall operation and the type of logic gates employed are identical to the four-level adder. Again, the decimal inputs and outputs are coded in a four-bit binary form.

FIG. 4 illustrates the circuitry necessary to generate the highand low-order decimaic' rries. The logic gates I10 and 112 generate the function P G from the input fourbit binary coded augend and adde nd signals. The logic gates 114-118 generate the function G F F, +P,, P These ftgictions are then used in combination with the values C G and P which are generated in the low-order decimal digit circuitry shown in FIG. 5, in the logic gates -124 to generate the lower order decimal carry C,,, The logic gates 136-140 are employed to generate the inverse of C,,, The logic gates 142-146 are used to generate the function P ,C,,, which in combination with G, represents the binary carry from the first bit C of the high order digit. The logic gates 148-152 generate the inverse ofC The logic gates 154-164 employ the generate and propagate functions from the two-, fourand eight-order bits and C, to generate the high-order decimal carry C FIG. 5 illustrates the three-level logic necessary to generate the low-order decimal sum. The equations to be implemented are derived as described above and are similar to those employed in the fo u r level adder. They are as follows:

The first column of logic circuits 166-188 are employed to generate the propagate and generate signals for each bit as well as the binary carry from the first bit. The second column of logic gates -206 are employed to generate the half-sum signals H, as well as the functions P P F G a fi fia I7 These functions, in addition to the lower order carry C,,, as generated in the circuitry shown in FIG. 4, are employed in the third level logic gates 208-232 to generate the binary coded decimal sum signals S S S and S FIG. 6 illustrates the logic circuitry employed to generate the high-order decimal sum. The equations to be implemented are derived similarly to that of the four-level adder described above and are identical to those used in the low-order digit except for the twoand ight-grde su n signals which are:

The first level comprising logic gates 234-252 generates the propagate and generate signals for each bit as well as the halfsum signal for the two-order bit H The logic gate 254 generates the half-sum signal for the first bit H The logic gates 256-260 generate the functions P G P ,,P E G respectively. The logic gates 262-266 are employed to generate the function G H +G,, H., The logic gate 268 generates the function H These signals plus the lower order decimal carry and the carry from the first binary bit C, are employed in the third level of logic gates 270-298 to generate the binary coded decimal sum signals S S S and S FIGS. 7 through 12 illustrate how the inventive concept employed in the design of the above two-digit decimal adders may be extended to an eight-digit decimal adder. This eightdigit adder generates the decimal sum after six levels of logic and comprises basically four repeated versions of the above described two-digit adders connected in parallel. That is, each eight-digit number is subdivided into four groups of two digits. Hereinafter, each two-digit group is referred to as a byte, the byte containing the lowest order digits is referred to as the first byte and the byte containing the highest order digits is referred to as the fourth byte. FIGS. 7 through 10 illustrate the circuit employed to generate the binary carries C,- for the first bit input values in each decimal digit. Each FIG. refers to only one byte, for example, FIG. 7 illustrates this binary carry generation for the first byte. These binary carries as generated in the first byte of each decimal digit of each byte are then employed to generate the decimal carry from each digit and are thus employed in the generation of the decimal sum as described above by implementing the equation:

FIG. 11 illustrates the logic circuitry employed to generate the decimal sum of the lower order digits of any byte; therefore, the circuitry as illustrated in FIG. 11 is reproduced four times in actual operation of the eight-digit adder, once for each digit. FIG. l2 illustrates the circuitry employed to generate the binary coded binary signals representative of the decimal sum of the high-order digits of any byte. It also is reproduced four times in the eight-digit adder, once for each byte. As in the above described two-digit adders, the logic gates employed are NOR gates, the top output being the NOR function and the bottom output being the OR function; emitter dotting is also employed.

Because of the increased number of digits, the carry lookahead technique employed uses group generate and group propagate signals as is well known in parallel binary adders. Here, each group comprises two digits and is referred to as a byte, therefore these signals are referred to as byte generate or propagate signals. The need for these byte generate and propagate signals is well described in an article by M. S. Schmookler, entitled Microelectronics Opens the Gate to Faster Digital Computer," in Electronic Design, July 5,1966, at page 52. Here, it is shown that in a binary adder the func tions for each bit carry are expressed by the following equations:

C +P ,C =G +P, G,,+P P G +P, P P G,+P,P,,P G,C,,, where C is the carry out of the adder, P,- is the propagate carry signal for each bit, G, is the generate carry signal for each bit, and C, is the input binary carry. Examining the terms of the expression for C this bit has a carry if it generates l, or if it can propagate it and the third bit generates it, or if the last two bits can propagate it and the second bit generates it, and so on. The last term says that there is a carry from the fourth bit if there is a carry into the first bit and all the intervening stages propagate it, As the adder gets much larger, however, there are three effects prohibiting implementation of the carry functions in the higher stages by this direct manner including, the number of inputs to the circuits soon exceeds feasible limitations, the driving capability of the circuits forming the propagate and generate functions is soon exceeded, and the number of components increases nearly by the square of the number of bits and eventually becomes a limiting factor.

To obviate these difficulties, it is well-known to subdivide parallel binary adders into bytes and propagate and generate the carries between the bytes rather than the individual bits. Auxiliary functions, similar to those defined for the internal carries of a byte, may be defined for the carries between the bytes, for example, a byte generate carry signal G, and a byte propagate carry signal P,,. Therefore, if an adder had two bytes, the byte carries may be represented by the following equations:

b2 b2 a2 bl b2 b2 bl hl b2 in This well-known technique is used in generating the binary carry C, of the first bit for each digit in each byte as illustrated in FIGS. 7 through 10.

To apply these byte generate and propagate signals to an eight-digit decimal adder, it must first be noted that each byte comprises two decimal digits in a four-bit binary code. A byte generate signal G,, must be generated whenever there is a decimal carry from the decimal addition performed in the byte. This may occur either if there is a decimal carry from the high-order digit in the byte or a value of 9 in the high-order digit coupled with a carry from the low-order digit. In equa tion form this may be represented as follows:

A byte propagate signal must be generated whenever the two decimal digits will propagate a decimal carry into the byte to the next higher byte, that is, whenever an addition produces the value of nine in each digit of the byte since in this situation, an input carry would be propagated through the byte to the next order byte. This is represented in equation form as follows:

b IM L IL H Turning now specifically to FIG. 7 which illustrates the circuitry employed to generate the K and L signals for both the highand low-order digit, the byte generate G,, and propagate signals P and the first bit binary carry C, for the highand low-order digits in the first order byte of the eight-digit decimal adder. The K and L functions as described above are defined as follows:

These functions in combination with the first bit binary carry C, are employed in accordance with the present invention to generate the decimal carry by implementing the equation:

!l l) and are employed in the circuitry as illustrated in FIGS. I1 and 12 to generate the binary coded signals representing the decimal sum as more fully described below. In addition, the circuitry implements the byte generate signal for the first byte, G As described above, this signal is employed in the circuits shown in FIGS. 8 through 10 to generate the first bit binary carry C, for the higher order bytes. In particular, the operation of the circuit is as follows. The propagate and generate signals for each bit of each digit are generated in the first level oflogic as shown in FIGS. 11 and 12 from the input four bit binary coded decimal signals. These signals are thus available to the first column of logic gates shown in FIG. 7 whereby the binary carry from the first bit of the low-order digit C and the L and K functions for both the highand low-order digits in this first byte are generated. The NOR-gates 300 and 302 employ the signals C, and G,, to generate the binary carry for the first bit of the low-order decimal digit according to the equation:

CIL=GIL+PILCIH The NOR-gate 304 generates the function P,,, and the NOR- gate 306 generates the P, G which are subsequently ORed together by the emitter dot 307. The NOR-gate 308 then combines this functions with G to produce the L, function for the low-order digit according to the equation LL=P 411 41. 21. The NOR-gates 310 through 316 and the emitter dot 318 generate the function K according to the equation K=G,,+P,,P ,+P,,P +G.,P Similarly, the OR-gates 322-328 and the emitter dot 330 generate the K function for the higher order digit. The NOR- gates 334-336 and the emitter dot 338 generate the function P rl-G P, which is then ORed with the function G, in logic gate 340 to produce the function L for the high-order digit according to the equation IF 8H+G4H+P 414 211 In the second column of logic illustrated in FIG. 7, the logic gate 342 generates the function C,, +K, from the inputs C,, and K The logic gates 344-350 and the emitter dot 354 generate the bit generate function for the first bit G,,, according to the equation m n( KH+PIH KH+G1H+LL KH+GIH+KL+CIL) This function is then employed in the circuits shown in FIGS. 8 through 10 to generate the binary carries C, for the first bit of each decimal in each byte. The logic gates 356-360 and the emitter dot 362 generate the byte propagate signal P however, this is not employed since it is not needed. It is only represented here because each byte employs identically manufactured parts and a similar signal is employed in the remaining bytes. This is also true of the logic gates 364 and 366 in their generated signal P, L, P,, The logic gate 368 in the fourth level of logic illustrated in FIG. 7 generates the function P,,,L,,(C,,,+K, This function is then ORed in logic gate 370 with the function G, to produce the binary carry for the first bit of the high-order decimal digit of the firstorder byte C, according to the equation CHFGIH+PIHL( CIL+KL) The logic gate 372 merely generates the inverse of the first binary carry C from the low-order digit since this has already been generated by the logic gates 300 and 302.

FIG. 8 illustrates the circuitry employed for the next higher order byte, that is, the second byte. Its operation is identical to the operation of FIG. 7 with the following exceptions. The

function P L P generated by the logic gates 374 and 376 and the emitter dot 378 is now employed with the byte generate signal G from the first byte as generated as shown in FIG. 7 as inputs to the additional logic gate 380 to generate the function G,,,(P,,,L, P,, This additional generated function is then employed in logic gate 370 to produce the binary carry C, for the first bit of the high-order decimal digit in this second byte according to the equation CIH=CIH+PIIILL(GIL+KI.)+(PIHLLPIL)GIII Further, since there is no input carry from the lower order digit, the logic gate 300 has been eliminated. The binary carry for the first bit in the lower order decimal digit of this second byte must also employ the byte generated carry G from the first byte. This is done by employing an additional logic gate 382 whereby the first bit binary carry C is generated according to the equation CIL=GIL+PILGDI FIG. 9 illustrates the circuitry used to implement the bit propagate and generate signals and the first bit binary carry for both the highand low-decimal digits in the third byte of the eight-decimal adder. This operation is identical to that of the second byte illustrated in FIG. 8 except that additional logic circuits 384 and 386 are employed since the first bit binary carries are now dependent upon both the byte generate and propagate signals generated from both the first and second bytes as described above.

The binary carry in the low-order bit should occur whenever a carry is generated in this bit or a carry is generated from the second byte and a one is propagated in this first bit or the carry has been generated in the first byte and propagated by the second byte and propagated by this first bit. Thus, logic gate 384 allows the byte propagate signal from the second byte to be used in generating the C,, signal according to the equation Similarly, a binary carry occurs in the first bit of the highorder decimal digit whenever a carry from the second byte with a value of9 in the lower digit and a propagate in this bit or a generate from the first byte propagated in the second byte, a 9 in the low-order digit and a propagate in this bit. Thus, logic gate 386 allows the byte generate from the first byte G and the byte propagate P from the second byte to be employed in generating this binary carry in the first bit of the high-order digit according to the equation CIIFGIH+PIHLL4GIL+KL)+(PIIILLPII.)GI)2+(PIHLLPIL)PD2GM FIG. 10 illustrates the logic circuitry employed in the highest order byte, byte number four. Because this is the highest order byte, the byte generate and propagate signals G, and P are not employed since there are no additional stages. Therefore, a decimal carry from the byte is generated by the logic gate 388 according to the equation m n( H+ iH) Thus, it represents the decimal carry from the entire addition. Again, since the binary caries from the first bit will be dependent upon the three preceding stages the additional logic gates 390 and 394 are employed. The logic gate 390 allows the binary carry from the first bit in the low-order decimal digit to be generated in accordance with the equation This means that the carry will be generated in the first bit if it is generated in that bit or it is generated in the third byte and propagated by that bit or if it is generated in the second byte propagated by the third byte and propagated by that bit or ifit is generated in the first byte propagated by the second byte and propagated by the third byte and propagated in that bit.

The binary carry from the high-order decimal digit is generated in accordance with the equation G,, +(AHII-IL P, )P P G,,, Thus, a binary carry is generated in the first bit of the highorder digit if it is generated in that bit, or if there is a carry from the lower order digit and it is propagated by the bit or if a carry is generated in the third byte and propagated by the loworder digit and propagated by the bit or generated in the second byte and propagated by the third byte and propagated by the low-order digit and that bit or if it is generated in the first byte propagated in the second byte propagated in the third byte and propagated in the low-order digit and that bit.

FIGS. 11 and 12 illustrate the logic circuitry employed to generate the binary code signals representative of the decimal sum. Only one byte, that is, two digits, are illustrated. In actuality there will be four, each associated with one of the circuits as illustrated in FIGS. 7 through 10; however, they are identical and the explanation of one will suffice.

More specifically, FIG. 11 illustrates the logic circuitry employed to generate the binary coded signals representative of the decimal sum of the lower-order digit in one of the four bytes. In operation, the decimal numbers as coded in four-bit binary signals are inputs to the logic gates comprising'the first column of logic. The logic gates 400-404 accept the first bit values of the low-order digit and generate the propagate and generate signals for this bit was as described in the discussion of the two-digit adders above according to the equations GIL=AILBIL PIL=AIL+BIL The logic gates 406-422 similarly generate these functions for the remaining bits in the low-order digit. The logic gates 424 through 430 in the second level of logic merely invert the G functions to the positive G functions. The logic gates 432-438 in the third level of logic generate the half-sum signals of each bit from the G and P functions according to the equation H,=Z,B,+A,F,=c,-P, The logic gates 440-444 and the emitter dot 445 generate the function P P P +G,, G +P,,, P., and the logic gate 446 merely inverts this function. The logic gates 448-450 and the emitter dot 452 generate the function G,,+H,H The logic gates 454-458 and the emitter dot 460 employ the input carry signals C,,,, the binary carry from the first bit of the low-order digit as generated in a circuit as shown in FIG. 7 and the halfsum signal from the first bit as generated by the logic gate 432 to generate the binary signal S which represents the first bit of the binary coded decimal addition according to the equation 11. lL |n ILCIL For the low-order byte, C is the actual input carry to the adder. For the higher order bytes, C,, is the byte carry C,, generated in the next lower order byte.

The logic gates 464-470 and the emitter dot 472 are used to generate the second bit signal of the low-order digit from the inputs C L and K generated from a circuit shown in FIG. 7 and the half-sum signal from this bit HgL as generated in logic gate 434 accgrdgig to the equ ation The logic gates 474-480 and the emitter dot 482 generate the four-order binary bit of the low-order digit from the inputs C as generated in the circuit as illustrated in FIG. 7, the halfsum signal for this bit H the signals G P P the output of emitter dot 452, and the output from logic gate 446, according to the equation The logic gates 484 and 486 and the emitter dot 488 generate the eight-order bit signal for the low-order digit from the C L and K signals as generated in a circuit as illustrated in FIG. 7 and the H signals from the two-, fourand eight-order bits and the eight-order generate signal according to the equation FIG. 12 illustrates the circuitry to generate the binary bit signals representative of the decimal sum of the high-order digit of any byte, that is, any two digits. Thus, the circuit shown in FIG. 12, as in FIG. 11, is associated with one of the byte circuits as illustrated in FIGS. 7 through 10. Its operation is identical to that shown in FIG. 11 for the low-order digit except for the generation of the first binary bit signal since, with a high-order digit, there is not input carry; however, there may be a carry from the low-order digit. Therefore, the first bit binary signal S, is generated a ccording to the equation by the logic gates 454-458 and the emitter dot 462.

While this invention has been particularly shown and described with reference to a preferred embodiment thereof, it will be understood by those skilled in the art that various changes in form and details may be made wherein without departing from the spirit and scope of the invention.

What is claimed is:

l. A method for performing decimal addition in a logic system including a plurality of logic circuits, wherein the augend and the addend each are represented in a four-bit binary code and said logic system has a low-order input carry signal C comprising:

a. logically producing a propagate signal P, for each bit of said binary coded inputs where P,=A,+B, and A, and B, are the binary coded bit values of the augend and addend, respectively, of any bit 1' of the four bits;

b. logically producing a generate signal G, for each bit 1' of said binary coded inputs where G,=A,B,;

c. logically producing a binary carry signal C, from the input values comprising the first bit of said binary coded bit values and said input carry signal where C ,=G,+P,C,-,,;

d. logically producing a decimal carry signal for said decimal addition from said propagate signals, said generate signals, and said binary carry of the first bit; and

. generating binary signals representative of the decimal sum of said augend and addend from said propagate signals, said generate signals, and said decimal carry signal, whereby the said decimal sum is represented at the output of said logic system for by four-bit coded signals and said decimal carry signal.

2. The method of claim 1 wherein said step for producing said decimal carry signal comprises logically solving the equation C,,=K+LC,, or its logical equivalent where C, is said decimal carry, C, is said binary carry of the first bit, K=G +P,,P+P,P +G,P,, and L=P,,+0,+P,,c,.

3. The method of claim 1 wherein said step of generating binary signals representative of the decimal sum includes the step of generating a half-sum signal H, for each bit where H,= AiBjAfBi.

4. The method of claim 3 wherein said step for generating binary signals representativeof the decimal sum further comprises logically solving the following equations or their logical equivalenis:

a. S,=( H,+C,,,)C,,,+P,C, where S, is the binary coded output d. S,,=H,, H,H,+G, C,+L or S,,=H,,(H,H +G,,)C,+LKC, where 5,, is the binary coded output signal for the fourth bit; whereby, 5,, S 5,, and S represent the sum of the decimal addition in said four-bit binary code and C represents the decimal carry signal emanating from this decimal digit.

5. A logic system for preforming decimal addition, wherein an augend and an addend each are represented in a four-bit binary code and said logic system receives a low-order input carry signal Cm, comprising:

a. logic means for implementing a propagate signal P, for

each bit of said binary coded inputs where P,=A,-+B, and A, and B, are the binary coded bit values of the augend and addend, respectively, of any bit 1' of the four bits;

b. logic means for implementing a generate signal 0, for

each bit i of said binar coded inputs where G,=A,B,;

c. logic means for imp ementing a binary carry signal C,

from the input values comprising the first bits of said binary coded bit values and said input carry signals where l 1 l in;

. logic means for implementing the decimal carry signal for said decimal addition from said propagate signals, said generated signals, said binary carry of the first bit; and

e. logic means for generating binary signals representative of the decimal sum of said augend and addend from said propagate signals, said generate signals, and said decimal carry signal, whereby said decimal sum is represented at the output of said logic system by four-bit binary coded signals and said decimal carry signal.

6. The logic system of claim 5 wherein said means for implementing said decimal carry signal comprises means to logically solve the equation C,,=K+LC, or its logical equivalent, where C,, is said decimal carry signal, C, is said binary carry from the first bit, K=G +P P +P P +G,P and L=P +G,,+P,,G

7. The logic system of claim 5 wherein said logic means for generating binary signals representative of the decimal sum includes means for generating a half-sum signal H, for each bit where H,=Z,B,+A 

1. A method for performing decimal addition in a logic system including a plurality of logic circuits, wherein the augend and the addend each are represented in a four-bit binary code and said logic system has a low-order input carry signal Cin, comprising: a. logically producing a propagate signal Pi for each bit of said binary coded inputs where Pi Ai+Bi and Ai and Bi are the binary coded bit values of the augend and addend, respectively, of any bit i of the four bits; b. logically producing a generate signal Gi for each bit i of said binary coded inputs where Gi AiBi; c. logically producing a binary carry signal C1 from the input values comprising the first bit of said binary coded bit values and said input carry signal where C1 G1+P1Cin; d. logically producing a decimal carry signal for said decimal addition from said propagate signals, said generate signals, and said binary carry of the first bit; and e. generating binary signals representative of the decimal Sum of said augend and addend from said propagate signals, said generate signals, and said decimal carry signal, whereby the said decimal sum is represented at the output of said logic system for by four-bit coded signals and said decimal carry signal.
 2. The method of claim 1 wherein said step for producing said decimal carry signal comprises logically solving the equation Cd K+LC1, or its logical equivalent where Cd is said decimal carry, C1 is said binary carry of the first bit, K G8+P8P4+P8P2+G4P2, and L P8+G4+P4G2.
 3. The method of claim 1 wherein said step of generating binary signals representative of the decimal sum includes the step of generating a half-sum signal Hi for each bit where Hi AiBi+AiBi.
 4. The method of claim 3 wherein said step for generating binary signals representative of the decimal sum further comprises logically solving the following equations or their logical equivalents: a. S1 (H1+Cin)Cin+P1C1 where S1 is the binary coded output signal for the first bit; b. S2 H2C1Cd+H2C1Cd+H2C1Cd+H2C1Cd or S2 H2LC1+H2LC1+H2KC1+H2KC1 where S2 is the binary coded output signal K G8+P8P4+G4P2, and L P8+G4+P4G2 for the second bit; c. S4 P4G2+P8H4P2+P8H4(P4+G2)P2C1+P8H4C1+(H4H2+G8)C1 or S4 P8G4(P4+P2)(P4+G2)+P8P4P2C1+G4G2C1+P8P4C1+(G8+H2)(G8+H4)C1 where S4 is the binary coded output signal for the third bit; d. S8 H8(H4H2+G8)C1+LCd or S8 H8(H4H2+G8)C1+LKC1 where S8 is the binary coded output signal for the fourth bit; whereby, S1, S2, S4, and S8 represent the sum of the decimal addition in said four-bit binary code and Cd represents the decimal carry signal emanating from this decimal digit.
 5. A logic system for preforming decimal addition, wherein an augend and an addend each are represented in a four-bit binary code and said logic system receives a low-order input carry signal Cin, comprising: a. logic means for implementing a propagate signal Pi for each bit of said binary coded inputs where Pi Ai+Bi and Ai and Bi are the binary coded bit values of the augend and addend, respectively, of any bit i of the four bits; b. logic means for implementing a generate signal Gi for each bit i of said binary coded inputs where Gi AiBi; c. logic means for implementing a binary carry signal C1 from the input values comprising the first bits of said binary coded bit values and said input carry signals where C1 G1+P1Cin; d. logiC means for implementing the decimal carry signal for said decimal addition from said propagate signals, said generated signals, said binary carry of the first bit; and e. logic means for generating binary signals representative of the decimal sum of said augend and addend from said propagate signals, said generate signals, and said decimal carry signal, whereby said decimal sum is represented at the output of said logic system by four-bit binary coded signals and said decimal carry signal.
 6. The logic system of claim 5 wherein said means for implementing said decimal carry signal comprises means to logically solve the equation Cd K+LC1 or its logical equivalent, where Cd is said decimal carry signal, C1 is said binary carry from the first bit, K G8+P8P4+P8P2+G4P2, and L P8+G4+P4G2.
 7. The logic system of claim 5 wherein said logic means for generating binary signals representative of the decimal sum includes means for generating a half-sum signal Hi for each bit where Hi AiBi+AiBi. 